﻿#region Copyright (C) Sector7 Software Studio. All rights reserved
/*******************************************************************************************
 * Creation
 *      Author:         Wolf Lai
 *      Date:           2013/6/5 星期三 21:00:35
 *      Version:        
 * Modification 
 *      Author: 
 *      Date: 
 *      Description: 
 *      Version:
 *******************************************************************************************/
#endregion
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;
using Sector7.Framework.Core;
using Sector7.Framework.Enums;

namespace Sector7.Medical.EntityType
{
    /// <summary>
    /// 药品（用品）信息实体
    /// </summary>
    [Serializable()]
    [DataContract]
    public class M7_Drug : EntityBase
    {
        #region DBField

        /// <summary>
        /// 获取或设置药品编码
        /// </summary>
        [DataMember]
        [DBField(DBFieldType.PrimaryKey)]
        public long DrugId { get; set; }

        /// <summary>
        /// 获取或设置物理特性编码
        /// </summary>
        [DataMember]
        [DBField]
        public int PhysicalTypeId { get; set; }

        /// <summary>
        /// 获取或设置种类特性编码
        /// </summary>
        [DataMember]
        [DBField]
        public int NatureTypeId { get; set; }

        /// <summary>
        /// 获取或设置剂型代码
        /// </summary>
        [DataMember]
        [DBField]
        public string DrugFormId { get; set; }

        /// <summary>
        /// 获取或设置药品通用名
        /// </summary>
        [DataMember]
        [DBField]
        public string DrugName { get; set; }

        /// <summary>
        /// 获取或设置通用名拼音码
        /// </summary>
        [DataMember]
        [DBField]
        public string SpellCode { get; set; }

        /// <summary>
        /// 获取或设置单位药剂的含量规格
        /// </summary>
        [DataMember]
        [DBField]
        public decimal Spec { get; set; }

        /// <summary>
        /// 获取或设置含量规格单位编码
        /// </summary>
        [DataMember]
        [DBField]
        public int SpecUnitId { get; set; }

        /// <summary>
        /// 获取或设置使用单位编码
        /// </summary>
        [DataMember]
        [DBField]
        public int UsageUnitId { get; set; }

        /// <summary>
        /// 获取或设置商品名称
        /// </summary>
        [DataMember]
        [DBField]
        public string ProductName { get; set; }

        /// <summary>
        /// 获取或设置执行标准
        /// </summary>
        [DataMember]
        [DBField]
        public string ExecutiveStandard { get; set; }

        /// <summary>
        /// 获取或设置医药产品注册类型编号
        /// </summary>
        [DataMember]
        [DBField]
        public string DrugRegTypeId { get; set; }

        /// <summary>
        /// 获取或设置医药产品注册证号
        /// </summary>
        [DataMember]
        [DBField]
        public string DrugRegNumber { get; set; }

        /// <summary>
        /// 获取或设置生产企业编码
        /// </summary>
        [DataMember]
        [DBField]
        public int ManufacturerId { get; set; }

        /// <summary>
        /// 获取或设置是否在售
        /// </summary>
        [DataMember]
        [DBField]
        public bool IsOnSell { get; set; }

        /// <summary>
        /// 获取或设置条形码
        /// </summary>
        [DataMember]
        [DBField]
        public string BarCode { get; set; }

        #endregion

        #region Extension
        
        /// <summary>
        /// 获取或设置药品剂型
        /// </summary>
        [DataMember]
        public M7_DrugForm DrugForm { get; set; }

        /// <summary>
        /// 获取或设置医药产品注册类型
        /// </summary>
        [DataMember]
        public M7_DrugRegType DrugRegType { get; set; }

        /// <summary>
        /// 获取或设置种类特性分类
        /// </summary>
        [DataMember]
        public M7_DrugType NatureType { get; set; }

        /// <summary>
        /// 获取或设置物理特性分类
        /// </summary>
        [DataMember]
        public M7_DrugType PhysicalType { get; set; }

        /// <summary>
        /// 获取或设置含量规格单位
        /// </summary>
        [DataMember]
        public M7_Unit SpecUnit { get; set; }

        /// <summary>
        /// 获取或设置使用单位
        /// </summary>
        [DataMember]
        public M7_Unit UsageUnit { get; set; }

        /// <summary>
        /// 获取或设置药品规格列表
        /// </summary>
        [DataMember]
        public List<M7_DrugSpec> SpecList { get; set; }

        /// <summary>
        /// 获取或设置库存信息
        /// </summary>
        [DataMember]
        public M7_DrugStock Stock { get; set; }

        /// <summary>
        /// 获取或设置冻结数
        /// </summary>
        [DataMember]
        public M7_FrozenStock Frozen { get; set; }

        #endregion
    }
}
